#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int main() 
//{
//	int arr1[10] = { 1,2,3,4,5,4,3,2,1,9 };
//	int arr2[10] = { 0,0,0,0,0,0,0,0,0,0 };
//	for (int i = 0;i < 10;i++) 
//	{
//		arr2[arr1[i]]++;
//	}
//	for (int i = 0;i < 10;i++) 
//	{
//		if (arr2[i] == 1)
//			printf("%d ", i);
//	}
//	return 0;
//}


/// /////////////////////////////////////////////////////////////////


int main() {
    int y, m;
    while (scanf("%d %d", &y, &m) != EOF)
    {
        switch (m)
        {
        case 2:
            if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
                printf("29\n");
            else
                printf("28\n");
            break;
        case 1:case 3:case 5:case 7:case 8:case 10:case 12:
            printf("31\n");
            break;
        case 4:case 6:case 9:case 11:
            printf("30\n");
            break;
        }

    }
    return 0;
}